{
 "cells": [
  {
   "metadata": {
    "collapsed": true
   },
   "cell_type": "markdown",
   "source": [
    "##### 理解向量存储\n",
    "将文本向量化后，下一步就是进行向量的存储，这部分包含两块：\n",
    "    1、向量的存储：将非结构化数据向量化后，完成存储\n",
    "    2、查询时，嵌入非结构化查询并检索与嵌入查询\"最相似\"的嵌入变量，即具有相似性检索能力。"
   ],
   "id": "d994902233a68a52"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "##### 常用向量数据库\n",
    "    1、Chroma    开源、免费的嵌入式数据库\n",
    "    2、FAISS     Meta出品，开源、免费，Facebook AI相似性搜索服务\n",
    "    3、Milvus    用于存储、索引和管理由深度神经网络和其他ML模型产生的大量嵌入向量的数据库\n",
    "    4、Pinecone  具有广泛功能的向量数据库\n",
    "    5、Redis     基于Redis的检索器"
   ],
   "id": "de77df6295424e88"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "##### 向量数据库的理解\n",
    "假设你是一名摄影师，拍了大量的照片。为了方便管理和查找，你决定将这些照片存储到一个数据库中。\n",
    "传统的关系型数据库(如MySQL、PostgreSQL等)可以帮助你存储照片的元数据，比如拍摄时间、地点、相机型号等。\n",
    "但当你想要根据照片的内容(如颜色、纹理、物体等)进行搜索时，传统数据库将无法满足你的需求，因为它们通常以数据表的形式存储数据，并使用查询语句进行精确搜索。\n",
    "此时，向量数据库就派上用场。\n",
    "\n",
    "我们可以构建一个多维的空间使得每张照片特征都存在于这个空间内，并用已有的维度进行表示，比如时间、地点、相机型号、颜色等。次照片的信息作为一个点，存储于其中。\n",
    "以此类推，即可在该空间中构建出无数个点，而后我们将这些点与空间坐标的原点进行链接，就形成一条条向量。\n",
    "当这些点变为向量后，即可利用向量的计算进一步获取更多的信息。\n",
    "当要进行照片的检索时，也会变的更容易更快捷。\n",
    "注意：在向量数据中进行检索时，检索并不是唯一的、精确的，而是查询和目标向量最为相似的一些向量，具有模糊性。\n",
    "延伸思考：只要对图片、视频、音频、商品等素材进行向量化，就可以实现以图搜图、视频相关推荐、相关宝贝推荐等功能。"
   ],
   "id": "6d24251b1aa71cb8"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
